package cw.spring.security.acl.poc.dao;

import java.util.Set;

public interface IBaseDAO<T> {

  /*
   * (non-Javadoc)
   * 
   * @see com.foo.bar.dao.BaseDAO#findAll()
   */
  Set<T> findAll();

  /*
   * (non-Javadoc)
   * 
   * @see com.foo.bar.dao.BaseDAO#findAll()
   */
  Set<T> findAll(int maxReturnedEntities);

  /*
   * (non-Javadoc)
   * 
   * @see com.foo.bar.dao.BaseDAO#findByPrimaryKey()
   */
  T findById(final long pk);

  /*
   * (non-Javadoc)
   * 
   * @see com.foo.bar.dao.BaseDAO#create()
   */
  T create(final T t);

  /*
   * (non-Javadoc)
   * 
   * @see com.foo.bar.dao.BaseDAO#create()
   */
  T saveOrUpdate(final T t);

  /*
   * (non-Javadoc)
   * 
   * @see north.stardust2.dao.BaseDAO#update(north.stardust2.model.PersistentObject)
   */
  void update(final T t);

  /*
   * (non-Javadoc)
   * 
   * @see com.foo.bar.dao.BaseDAO#delete()
   */
  void delete(final T t);

}